class Template<T> {
    private T obj;

    public Template(T obj) {
        this.obj = obj;
    }

    public void showType() {
        System.out.println(this.obj.getClass().getName());
    }
}

public class Generics {
    public static void main(String[] args) {
        Template<Integer> a = new Template<Integer>(10);
        a.showType();
        Template<String> b = new Template<String>("hello");
        b.showType();
    }
}
